System Design Basics
Resource
- Large-scale distributed systems:
- Large-scale: handles massive amounts of data and requires significant computing power.
- Distributed systems: workload is spread across multiple servers in different locations, not on a single central server.
- if a server fails, other servers can take the load and keep the system running → fault tolerant.
- when searching the web - results can be fetched from geographically closer servers, making it faster. → performance.
- additional servers can be easily added to handle the extra load, making the system adaptable to growth. → scalability.
- ** Software Design Pattern:**
- building blocks that provide general, reusable solutions to commonly occurring problems within a given context in software design.
- Example: Publisher Subscriber Model. → System design patterns allow for scalable, maintainable systems because engineers can take a lot of business requirements and convert them into technical solutions.